package queryManager;


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import utils.InitDOMParser;


/**
 * Parcours le fichier contenant les requetes et les stocke dans une liste de {@link Query}
 * @author amady
 *
 */
public class QueryParser {
	
	private ArrayList<Query> queries;
	
	
	public QueryParser(String path){
		this.queries = new ArrayList<Query>();
		
		Document document=null ;
		InitDOMParser initDom = new InitDOMParser();
		try {
			document = initDom.getConstructeur().parse(new File(path));
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		NodeList listeReq = document.getElementsByTagName("query");
		for(int i=0;i<listeReq.getLength();i++){//on parcours la listes des requetes
			Node n = listeReq.item(i);
			Query query = new Query();
			query.setId(n.getAttributes().item(0).getTextContent().trim());
			for(int j=0;j<n.getChildNodes().getLength();j++ ){//on parcours une requete
				Node node = n.getChildNodes().item(j);
				if(node.getNodeName().equalsIgnoreCase("text")){
					query.setText(node.getTextContent().trim());
				}else if(node.getNodeName().equalsIgnoreCase("narrative")){
					query.setNarrative(node.getTextContent().trim());
				}else{
				}
			}
			this.queries.add(query);
		}
		
	}
	
	
	public ArrayList<Query> getQueries() {
		return this.queries;
	}

	public void setQueries(ArrayList<Query> queries) {
		this.queries = queries;
	}

	

}
